- GovQL
GovQL
# govql-mcp-server
An MCP (Model Context Protocol) server for [GovQL](https://govql.us) — gives
AI clients like Claude Desktop, Claude Code, and Cursor direct access to the
US Congressional GraphQL API at [api.govql.us/graphql](https://api.govql.us/graphql)
without bespoke HTTP wiring.
For the design rationale (why FastMCP-Python, the passthrough+curated philosophy,
roadmap through v0.4), see
[design.md](https://github.com/govql/govql/blob/main/mcp-server/docs/design.md).
## What you can do with it
Ask an agent questions like:
- *"How did Vermont's two senators vote on the most recent nomination?"*
- *"Which legislators in the 118th Congress switched parties during their service?"*
- *"Compare Senator Sanders' voting record to Senator Murkowski's on cloture votes
in the most recent Congress."*
The agent picks the right tool, writes the GraphQL query against the live
schema, and parses the response — no manual API wrangling.
## Install
The server runs as a per-client subprocess over stdio. Pick your client:
### Claude Desktop
Edit `claude_desktop_config.json` (Settings → Developer → Edit Config):
```json
{
"mcpServers": {
"govql": {
"command": "uvx",
"args": ["govql-mcp-server"]
}
}
}
```
Restart Claude Desktop. The `govql` tools appear in the tools panel.
### Claude Code
Add to `.mcp.json` in your project (or `~/.mcp.json` for global):
```json
{
"mcpServers": {
"govql": {
"command": "uvx",
"args": ["govql-mcp-server"]
}
}
}
```
### Cursor
Settings → MCP → Add Server. Use the same `command` / `args` as above.
### Other clients
Any MCP-compatible client that supports stdio servers will work. The command
is `uvx govql-mcp-server` with no required arguments.
## Tools
| Tool | Purpose |
|---|---|
| `execute_graphql` | Run any GraphQL query against the GovQL endpoint. Returns the result plus an `last_ingest` timestamp so the agent can reason about data freshness. |
| `list_types` | Returns the names and kinds of every type in the GovQL schema. Optional `kind` filter (`"OBJECT"`, `"INPUT_OBJECT"`, `"ENUM"`, etc.) to narrow further. Start here when you don't know what's queryable. |
| `describe_type` | Returns one type's full details — fields, arg signatures, input fields, enum values. Call after `list_types` to learn the shape of a specific type before writing a query. |
## Configuration
All env vars are optional — the package is zero-config for end users.
| Env var | Default | Purpose |
|---|---|---|
| `GOVQL_ENDPOINT` | `https://api.govql.us/graphql` | Endpoint to query. Override to point at a local dev stack. |
| `GOVQL_TIMEOUT_MS` | `30000` | Per-request HTTP timeout. |
| `LOG_LEVEL` | `INFO` | Logging level. Logs go to stderr only (stdout is reserved for the MCP transport). |
## Limits (enforced by the upstream API)
- Max query depth: 10
- Max query complexity: ~10 billion points (`first: N` multiplies child cost
by N — keep page sizes reasonable on deeply nested queries)
- Rate limit: 100 requests / 60 s per source IP
A depth or complexity violation surfaces as a GraphQL `errors` entry in the
tool response so the agent can adjust and retry.
## Data freshness
Every `execute_graphql` response includes a `last_ingest` ISO timestamp.
Vote data refreshes hourly; legislator data refreshes daily.
## Status
Version 0.1.0 ships three foundational tools: a GraphQL passthrough
(`execute_graphql`) and two narrow schema-discovery tools (`list_types`,
`describe_type`). Curated higher-level tools (`find_legislator`,
`get_voting_record`, `compare_voters`, etc.) are planned for subsequent
releases — see
[design.md](https://github.com/govql/govql/blob/main/mcp-server/docs/design.md)
for the roadmap.
## Links
- [GovQL project site](https://govql.us)
- [GraphQL API](https://api.govql.us/graphql)
- [Source / issues](https://github.com/govql/govql)
Overview
USA - Federal Government Data
Making Government Data Available in GraphQL
Lots of government data is available, but that doesn't mean it's easy to access and extract insights from it. This project is an attempt to rectify that.
- API: api.govql.us/graphql — GraphQL API with Ruru explorer
- Site: govql.us — documentation and usage guide
Repo structure
This repo is a monorepo containing two sub-projects:
us-congress/— the GovQL GraphQL API (JavaScript / PostGraphile), plus the Docusaurus docs site.mcp-server/— the GovQL MCP Server (Python / FastMCP). Lets AI clients like Claude Desktop, Claude Code, and Cursor query the API directly.
They are deployed independently and depend on each other only at runtime via HTTP.
See us-congress/README.md for local development and deployment of the API, and mcp-server/README.md / mcp-server/CONTRIBUTING.md for the MCP server.
Server Config
{
"mcpServers": {
"govql": {
"command": "uvx",
"args": [
"govql-mcp-server"
]
}
}
}Recommend Servers
TraeBuild with Free GPT-4.1 & Claude 3.7. Fully MCP-Ready.
Playwright McpPlaywright MCP server
CursorThe AI Code Editor
ChatWiseThe second fastest AI chatbot™
RedisA Model Context Protocol server that provides access to Redis databases. This server enables LLMs to interact with Redis key-value stores through a set of standardized tools.
WindsurfThe new purpose-built IDE to harness magic
Howtocook Mcp基于Anduin2017 / HowToCook (程序员在家做饭指南)的mcp server,帮你推荐菜谱、规划膳食,解决“今天吃什么“的世纪难题;
Based on Anduin2017/HowToCook (Programmer's Guide to Cooking at Home), MCP Server helps you recommend recipes, plan meals, and solve the century old problem of "what to eat today"
Jina AI MCP ToolsA Model Context Protocol (MCP) server that integrates with Jina AI Search Foundation APIs.
MiniMax MCPOfficial MiniMax Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech, image generation and video generation APIs.
Serper MCP ServerA Serper MCP Server
MCP AdvisorMCP Advisor & Installation - Use the right MCP server for your needs
Zhipu Web SearchZhipu Web Search MCP Server is a search engine specifically designed for large models. It integrates four search engines, allowing users to flexibly compare and switch between them. Building upon the web crawling and ranking capabilities of traditional search engines, it enhances intent recognition capabilities, returning results more suitable for large model processing (such as webpage titles, URLs, summaries, site names, site icons, etc.). This helps AI applications achieve "dynamic knowledge acquisition" and "precise scenario adaptation" capabilities.
BlenderBlenderMCP connects Blender to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Blender. This integration enables prompt assisted 3D modeling, scene creation, and manipulation.
Amap Maps高德地图官方 MCP Server
Baidu Map百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
DeepChatYour AI Partner on Desktop
AiimagemultistyleA Model Context Protocol (MCP) server for image generation and manipulation using fal.ai's Stable Diffusion model.
EdgeOne Pages MCPAn MCP service designed for deploying HTML content to EdgeOne Pages and obtaining an accessible public URL.
Visual Studio Code - Open Source ("Code - OSS")Visual Studio Code
Tavily Mcp
Y GuiA web-based graphical interface for AI chat interactions with support for multiple AI models and MCP (Model Context Protocol) servers.